-
Notifications
You must be signed in to change notification settings - Fork 3.7k
Publish both Cuda 13 and Cuda 12 packages in packaging pipeline #27012
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Conversation
…efactor-cuda-13-builds
| - Windows_Nodejs_Packaging_x64 | ||
| - Windows_Nodejs_Packaging_arm64 | ||
| - Linux_Nodejs_Packaging_x64 | ||
| - Linux_Nodejs_Packaging_x64_cuda_12 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Should publish both CUDA 13 and 12 NodeJS packages?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull request overview
This pull request refactors the CUDA packaging pipeline to support building and publishing packages for both CUDA 12 and CUDA 13 simultaneously. Previously, the pipeline required selecting a single CUDA version via parameter. Now it iterates over multiple CUDA versions defined in an object structure.
Changes:
- Converted CudaVersion parameter from string/enum to object structure containing multiple CUDA versions with their respective configurations (paths, architectures, TensorRT versions)
- Updated all CUDA packaging stages to iterate over CUDA versions and append stage tokens (cuda_12, cuda_13) to stage and artifact names
- Modified extraction scripts to handle new artifact naming convention that includes CUDA version tokens
Reviewed changes
Copilot reviewed 11 out of 11 changed files in this pull request and generated 6 comments.
Show a summary per file
| File | Description |
|---|---|
| tools/ci_build/github/windows/extract_zip_files_gpu.ps1 | Updated regex patterns to match new artifact naming with CUDA version tokens; removed trailing whitespace |
| tools/ci_build/github/linux/extract_and_bundle_gpu_package.sh | Updated wildcard patterns and sed commands to handle new artifact names with CUDA version tokens; removed trailing whitespace |
| tools/ci_build/github/azure-pipelines/templates/c-api-cpu.yml | Updated dependency to reference specific CUDA 12 nodejs packaging stage |
| tools/ci_build/github/azure-pipelines/stages/nuget-win-cuda-packaging-stage.yml | Refactored to accept CudaVersion as object and StageToken parameter; updated all stage/artifact names to include tokens |
| tools/ci_build/github/azure-pipelines/stages/nuget-linux-cuda-packaging-stage.yml | Refactored parameters and removed common-variables template dependency; stage/artifact names now include version tokens |
| tools/ci_build/github/azure-pipelines/stages/nuget-cuda-packaging-stage.yml | Added StageToken parameter and updated stage dependencies and artifact names; added backward compatibility artifact |
| tools/ci_build/github/azure-pipelines/stages/nuget-combine-cuda-stage.yml | Converted from simple parameter passing to loop iteration over CudaVersion object with each key-value pair |
| tools/ci_build/github/azure-pipelines/stages/nodejs-linux-packaging-stage.yml | Updated to receive CudaVersion as object and StageToken; removed common-variables dependency |
| tools/ci_build/github/azure-pipelines/stages/java-cuda-packaging-stage.yml | Wrapped in loop to create separate stages for each CUDA version with tokenized artifact names |
| tools/ci_build/github/azure-pipelines/stages/c-api-linux-cpu-stage.yml | File deleted (previously contained Linux CPU packaging stage definition) |
| tools/ci_build/github/azure-pipelines/c-api-noopenmp-packaging-pipelines.yml | Added structured CudaVersion parameter with all configuration; removed variables section that computed values from CudaVersion parameter |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| - Windows_Nodejs_Packaging_x64 | ||
| - Windows_Nodejs_Packaging_arm64 | ||
| - Linux_Nodejs_Packaging_x64 | ||
| - Linux_Nodejs_Packaging_x64_cuda_12 |
Copilot
AI
Jan 14, 2026
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The hardcoded dependency on 'Linux_Nodejs_Packaging_x64_cuda_12' is problematic. This change introduces support for both CUDA 12 and CUDA 13, but this hardcoded reference assumes only CUDA 12 exists. When the pipeline processes both CUDA versions, there will be both 'Linux_Nodejs_Packaging_x64_cuda_12' and 'Linux_Nodejs_Packaging_x64_cuda_13' stages created. The dependency should either reference both versions or be reconsidered based on whether nodejs packaging is actually required for this CPU packaging stage.
| - Linux_Nodejs_Packaging_x64_cuda_12 | |
| - Linux_Nodejs_Packaging_x64_cuda_12 | |
| - Linux_Nodejs_Packaging_x64_cuda_13 |
tools/ci_build/github/azure-pipelines/c-api-noopenmp-packaging-pipelines.yml
Show resolved
Hide resolved
| CudaVersion: | ||
| type: object |
Copilot
AI
Jan 14, 2026
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The parameter definition uses an inconsistent indentation style. Line 2 uses 2-space indentation for 'CudaVersion:', but this is inconsistent with standard Azure Pipeline YAML formatting where parameters typically use hyphens. Consider using the standard format with a hyphen prefix: '- name: CudaVersion'.
| CudaVersion: | |
| type: object | |
| - name: CudaVersion | |
| type: object |
tools/ci_build/github/azure-pipelines/stages/nodejs-linux-packaging-stage.yml
Outdated
Show resolved
Hide resolved
…aging-stage.yml Co-authored-by: Copilot <[email protected]>
Co-authored-by: Copilot <[email protected]>
Description
Motivation and Context